package com.fmdj.bff.driver.feign;
import cn.hutool.core.bean.BeanUtil;
import com.fmdj.bff.driver.controller.form.*;
import com.fmdj.common.util.CommonResult;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import java.util.HashMap;
import java.util.Map;

@FeignClient("fmdj-odr")
public interface OdrServiceApi {

    //远程调用订单模块的接口
    @PostMapping("/order/selectDriverTodayBusinessData")
    CommonResult selectDriverTodayBusinessData(SelectDriverTodayBusinessDataForm form);

    @PostMapping("/order/acceptNewOrder")
    CommonResult acceptNewOrder(AcceptNewOrderForm form);

    @PostMapping("/order/searchDriverExecuteOrder")
    CommonResult searchDriverExecuteOrder(SearchDriverExecuteOrderForm form);

    @PostMapping("/order/searchDriverCurrentOrder")
    CommonResult searchDriverCurrentOrder(SearchDriverCurrentOrderForm form);

    @PostMapping("/order/searchOrderForMoveById")
    CommonResult searchOrderForMoveById(SearchOrderForMoveByIdForm form);

    @PostMapping("/order/arriveStartPlace")
    CommonResult arriveStartPlace(ArriveStartPlaceForm form);

    @PostMapping("/order/startDriving")
    CommonResult startDriving(StartDrivingForm form);

    @PostMapping("/order/updateOrderStatus")
    CommonResult updateOrderStatus(UpdateOrderStatusForm form);

    @PostMapping("/order/validDriverOwnOrder")
    CommonResult validDriverOwnOrder(@RequestBody @Valid ValidDriverOwnOrderForm form);

    @PostMapping("/order/searchSettlementNeedData")
    CommonResult searchSettlementNeedData(@RequestBody @Valid SearchSettlementNeedDataForm form);

    @PostMapping("/bill/updateBillFee")
    CommonResult updateBillFee(@RequestBody @Valid UpdateBillFeeForm form);

    @PostMapping("/bill/searchReviewDriverOrderBill")
    CommonResult searchReviewDriverOrderBill(@RequestBody @Valid SearchReviewDriverOrderBillForm form);

    @PostMapping("/order/searchOrderStatus")
    public CommonResult searchOrderStatus(@Valid @RequestBody SearchOrderStatusForm form);

    @PostMapping("/order/updateOrderAboutPayment")
    public CommonResult updateOrderAboutPayment(@RequestBody @Valid UpdateOrderAboutPaymentForm form);

    @PostMapping("/order/searchDriverOrderByPage")
    public CommonResult searchDriverOrderByPage(@RequestBody @Valid SearchDriverOrderByPageForm form);

    @PostMapping("/order/searchOrderById")
    public CommonResult searchOrderById(@RequestBody @Valid SearchOrderByIdForm form);

    @PostMapping("/comment/searchCommentByOrderId")
    public CommonResult searchCommentByOrderId(@RequestBody @Valid SearchCommentByOrderIdForm form);
}
